Mobile networking services facilitate connecting portable computing devices, generally on a temporary basis, to any of a number of networks as the portable computing devices are transported by users to a variety of locations. Such capabilities are typically, though not always, associated with wireless WAN/LAN connections. For example, a notebook computer may connect to a network (or subnet thereof) via any one of a number of wireless hotspots at geographically diverse locations. When a portable device connects to one of such wireless subnets, the portable device receives a unique network (e.g., Internet Protocol) address. One aspect of mobile computing is enabling other computing nodes to maintain the ability to maintain communications access to a mobile node notwithstanding the fact that is connected to a network using a current address that differs from a permanent “home” address. Thus, mechanisms have been developed to accommodate the substantial likelihood that at some point, the mobile node's network address will change, and thereafter other nodes will seek to communicate with the mobile node at its new network address.
Before describing a prior known way in which networks handled mobile node network address changes, exemplary relevant network protocols will be briefly described. A number of network protocols support building temporary connections for portable computing devices and allocating network addresses for such computing devices. A known Dynamic Host Configuration Protocol (DHCP) enables centralized, automated assignment of Internet Protocol addresses to machines upon connection to a network. DHCP enables computers to be moved to another location in a network and automatically receive a new Internet Protocol address corresponding to the new location. DHCP incorporates a network address “lease” functionality that assigns a variable amount of time that a particular assigned Internet Protocol address will be valid for a connected computer. The DHCP is particular useful in network environments where a limited number of Internet Protocol addresses are available for assignment to a large number of computers.
A Point-to-Point Protocol (PPP) is a communications protocol for serial communications between two computers (e.g., a personal computer connected to a server via a phone line). PPP uses the Internet Protocol and provides data-link layer (layer two) services. In particular, PPP packages TCP/IP or other network later protocol packets and forwards them from a client to a server operating as the client's gateway to the Internet.
Other protocols that are potentially relevant to mobile computing include a Point-to-Point Tunneling Protocol (PPTP) and Layer Two Tunneling Protocol (L2TP). The PPTP, an extension of PPP, facilitates extension of a network through private “tunnels” over public networks (e.g., the Internet). This form of interconnection is referred to as a Virtual Private Network (VPN) and enables a computer having PPP client support to establish a secure connection to a server via an Internet service provider. L2TP is a variation of PPTP. Both these tunneling protocols use a local access concentrator to enable packets to be tunneled over public network links thereby avoiding potentially needing to establish a long distance phone connection to ensure secure communications between a client and server.
In a known networking environment, a mobile computing node is assigned a relatively permanent network address associated with a “home” network location. However, when the mobile node connects from a location outside its home network, a network communications server, using for example DHCP, assigns a temporary current address to the mobile node in support of the connection outside the home network location. During the time that the mobile node is using a temporary current address rather than its home address, correspondent nodes (i.e., other nodes seeking to communicate with the mobile node) will use an address previously provided for the mobile node. Typically, unless informed of a mobile node's current, non-home address, correspondent nodes use the mobile node's home (permanent address) address when transmitting packets to the mobile node. If the mobile node is connected at a network location differing from its home location, the home address does not match the mobile node's current address. Such instances are accommodated, in a known network arrangement, by providing a home agent for the mobile node on the mobile node's home network. The home agent maintains the current address of the mobile node having a particular home network address. The home agent receives packets addressed to the mobile node's home network address, encapsulates the packets according to a tunneling protocol, and passes the encapsulated packets to the current address of the mobile node. The “from” and “to” addresses of the envelope identify the home agent and the temporary current point of attachment of the node respectively, while the encapsulated packets identify the original source and destination addresses of the received packets.
The following illustrates the operation of a known home agent-based mobile networking arrangement. A mobile node having a home network address of 1.1.1.1 is currently remotely connected to its home network via a temporarily assigned non-local address of 2.2.2.2. A correspondent node, having a network address of 7.7.7.7, is communicating with the mobile node using its home address of 1.1.1.1. The home agent (having an address of 1.1.1.0), aware of the mobile node's current non-local address of 2.2.2.2, intercepts packets identifying the mobile node's home address (1.1.1.1). The home agent encapsulates the packets directed to the home address 1.1.1.1 according to a tunneling protocol. The resulting encapsulated packets specify the home agent's source address (1.1.1.0) and the mobile node's current address (2.2.2.2).
Home agents solve a number of network address tracking problems that arise within a mobile node networking environment. For example, if both a correspondent node and a mobile node move concurrently, binding updates provided by each node to the last known address of the node can be lost. If the two nodes had been engaged in a session, the session cannot continue due to the loss of proper addresses. On the other hand, if a home agent exists for each of the two nodes, then both nodes can continue communications using the home addresses for the nodes. The home agents, intercept and pass (tunnel) the packets identifying the home addresses to the current (“care of”) addresses for the mobile and correspondent nodes.
Another potential address tracking problem that arises with regard to mobile nodes involves the ability of new nodes to contact the mobile node in the event that domain name system (DNS) servers, that associate names with network addresses, have cached the old address for a name associated with the mobile node. In such instances, the DNS servers, or more generally name servers, continue to provide the old/invalid address until the time to live (TTL) for the cached address, specified for the named mobile node, expires. A home agent addresses this problem by intercepting (and thereafter tunneling to the mobile node) packets containing the (home) address of the mobile node that is provided by the DNS servers to new nodes. The mobile node, upon receiving the tunneled packets, can inform the new nodes of its new address via binding updates (and the home agent is thereafter by-passed).
Yet another address tracking problem involves moving a mobile node behind a network address translator/firewall. In this case a home agent tunnels traffic from new clients to the mobile node. The home agent has an open port for communication with the mobile node as a result of previous communications initiated by the mobile node to the home agent from behind the NAT/firewall. The new clients communicate indirectly with the mobile node (through the home agent) using the known home address of the mobile node. Home agents, while increasing the complexity of managing network addresses/communications, are considered valuable, if not indispensable, components within networking environment populated by mobile nodes.